package com.sojson.util.pay.wx.enums;

/**
 * 微信接口地址枚举类
 * 
 * @author liu
 * @date 2021-04-12
 */
public enum EWxApiType {

    /** 获取AccessToken的路径 */
    ACCESS_TOKEN_URL("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"),
    /** 获取微信用户认证AccessToken的路径(通过前端传过来的code获取) */
    USER_ACCESS_TOKEN_URL(
        "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code"),
    /** 获取企业微信应用AccessToken的路径 */
    QY_YY_ACCESS_TOKEN_URL(
        "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s"),

    /** 获取JsapiTicket的路径 */
    JSAPI_TICKET_URL("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi"),
    /** 获取企业微信JsapiTicket的路径 */
    QY_JSAPI_TICKET_URL("https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=%s"),
    /** 获取企业微信应用JsapiTicket的路径 */
    QY_YY_JSAPI_TICKET_URL("https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=%s&type=agent_config"),

    /** 获取WEB端微信认证CODE的路径 */
    WEB_CODE_URL(
        "https://open.weixin.qq.com/connect/qrconnect?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_login&state=%s#wechat_redirect"),
    /** 获取移动端微信认证CODE的路径 */
    MOBILE_CODE_URL(
        "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo&state=%s#wechat_redirect"),
    /** 获取微信用户信息的路径,这里的access_token要通过微信认证接口返回的数据获取,和基础的AccessToken不一样 */
    USER_INFO_URL("https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s"),
    /** 小程序获取用户唯一标识和会话密钥等信息(通过前端传过来的code获取) */
    XCX_GET_OPENID_AND_UNIONID_AND_SESSION_KEY(
        "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"),

    /** 获取二维码ticket的路径 */
    QRCODE_TICKET("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=%s"),
    /** 获取小程序码(通过AccessToken获取) */
    XCX_GET_MINI_PROGRAM_CODE("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=%s"),
    /** 发送订阅消息(通过AccessToken发送) */
    XCX_SEND_SUBSCRIBE_MESSAGE("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=%s"),
    /** 企业微信给员工发送消息 */
    QY_SEND_YG_MESSAGE("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s"),
    /** 获取企业微信审批模板 */
    QY_GET_APPLYEVENT_TEMPLATE("https://qyapi.weixin.qq.com/cgi-bin/oa/gettemplatedetail?access_token=%s"),
    /** 企业微信给员工发送消息 */
    QY_SEND_APPLYEVENT("https://qyapi.weixin.qq.com/cgi-bin/oa/applyevent?access_token=%s");

    /**
     * 类型
     */
    private final String type;

    EWxApiType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    @Override
    public String toString() {
        return type;
    }

}